Uvod

PHP je skriptni jezik koji nam prvenstveno služi za izradu dinamičkih web stranica. PHP je skraćenica koji glasi Hypertext Preprocesor. Pomoću PHP-a kreiramo HTML stranicu na serveru prije nego što je ona poslana klijentu popunjenu dinamičkim sadržajem. Ovim načinom generiranja klijent ne može vidjeti kod koji je generirao sadržaj koji se nalazi ispred njega, već dobije pristup čistom HTML kodu. Sintaksom je sličan mnogim drugim skriptnim i programskim jezicima te je jednostavan za pisanje što je i jedan od razloga prihvaćenosti PHP-a u programskom svijetu.

PHP je razvio programer Rasmus Lerdorf koji je i danas glavna osova zadužena za razvoj PHP-a. Lerdorf je u početku koristio PHP kao pomoć za izradu vlastite web stranice. Prve dvije verzije PHP-a nisu bile previše popularne, ali treća inačica je izašla 1998. godine i privukla je velik broj programera koji su počeli koristiti PHP u svakodnevnom programiranju. Kasnije izlaze još dvije verzije PHP-a, četvrta izlazi 2000. godine, a aktualna peta inačica koja uključuje brojne novosti izlazi 2004. godine.

PHP se piše u HTML kodu kao poseban element <?php ?> i ako želimo da naš web browser na dobar način interpretira stranicu moramo je spremiti sa .php ekstenzijom, a ne sa .html ekstenzijom kao inače. Sve unutar elementa php se smatra PHP programom i ako je na server strani instaliran i ispravno podešen PHP interpreter, a datoteka završava s ekstenzijom .php tada će se taj dio programa automatski izvršiti.

Ovako izgleda najjednostavniji php kod:

Slika 1. Prvi PHP kod.

Organiziranje datoteka i direktorija

Prije nego što počnemo s programiranjem dinamičkih web stranica pomoću PHP-a potrebno je upoznati se s načinima kako da organiziramo direktorije i datoteke unutar direktorija. Svako mrežno mjesto sastoji se od više datoteka različitih vrsta. Prosječna mrežna mjesta sastoje se od nekoliko stotina direktorija i datoteka. Dobrom organizacijom datoteka lakše ćemo se snalaziti prilikom izrade dinamičkih stranica, a samim time projekt će nam biti pregledniji.

Predlaže se organiziranje datoteka na slijedeći način:

Slika 2. Organiziranje datoteka u direktorije

Na slici je prikazan način na koji bi trebali organizirati direktorije i datoteke. Stranicu indeks staviti u tzv. root directory u ovom slučaju “ICT”, zatim datoteke poput CSS-a, JavaScript-a te slikovne datoteke najpraktičnije je postaviti u posebne direktorije te na taj način organizirati svoj projekt. Kao što se vidi na slici organizacija direktorija i datoteka, kao i sve što radimo s PHP-om, treba biti unutar xampp direktorija i htdocs poddirektorija.

Kako bismo povezali sve te datoteke i uspješno ih implementirali u svoje web stranice potrebno je koristiti relativne i apsolutne adrese. Relativna adresa je adresa relativno od mjesta na kojem se nalazimo. Kada za povezivanje datoteka koristimo relativnu adresu mi upisujemo cjelokupnu putanju do mjesta na kojem se nalazimo skroz do datoteke koju želimo povezati u našu web stranicu.

Ako se odlučimo za korištenje relativne adrese možemo se susreti s tri scenarija:

a. Datoteka se nalazi pored nas:

Slika 3.

U ovom primjeru se nalazimo u datoteci index.php i želimo postaviti sliku u našu web stranicu. To ćemo učiniti na način da ćemo unutar img elementa upisati atribut src te unutar navodnika upisat ćemo relativnu putanju do slike koja glasi “slika.jpg”.

b. Datoteka se nalazi ispod nas:

Slika 4.

U ovom primjeru također se nalazimo u datoteci index.php i želimo postaviti sliku u našu web stranicu. Ovaj put će relativna putanja glasiti “img/slika.jpg”, što znači da se datoteka nalazi ispod nas u direktoriju img i to označavamo znakom /.

c. Datoteka se nalazi iznad nas:

Slika 5.

U ovom primjeru se nalazimo u datoteci index.php koja se nalazi u direktoriju web_stranice i želimo postaviti sliku unutar naše stranice. Slika se nalazi u direktoriju img. U ovom slučaju relativna adresa će izgledati ovako: “../img/slika.jpg”. Dvije točke predstavljaju izlaz iz datoteke u kojoj se nalazimo.

Osim relativnih adresa postoje i apsolutne adrese. Apsolutna adresa je puna adresa do traženog resursa. Kada upisujemo apsolutnu adresu ne moramo upisivati cjelokupnu putanju do željene datoteke nego upisujemo direktnu adresu.

Ovako izgleda apsolutna adresa:

http://www.transaxgateway.com/imgs/logos/php.png

PHP varijable

Varijable su kontejneri za čuvanje podataka. Svaka varijabla sastoji se od znaka $ i imena varijable. Varijabla ne smije počinjati s brojem, ne smije sadržavati druge znakove osim alfanumeričkih, također varijable su “case-sensitive” što znači da varijabla $godina i $GODINA nisu iste varijable. U idućem primjeru pokazat ćemo izvršavanje jedne jednostavne varijable.

Slika 6. Primjer jednostavne PHP varijable

U ovom jednostavnom primjeru stvorili smo varijablu $x i varijablu $y te kao rezultat dobili smo izračun te dvije varijable što će nam se pokazati kada izvedemo ovu varijablu u pregledniku.

Ovako to izgleda u pregledniku:

Slika 7. Rezultat izvođenja koda

U PHP-u možemo stvarati vlastite varijable i potrebno ih je imenovati. Varijablu je najbolje imenovati na najkraći mogući način koji će ju jednoznačno označiti tj. da će se razlikovati od svih ostalih varijabli. U idućem primjeru ćemo kreirati vlastitu varijablu te prikazati kako se ona izvodi u pregledniku.

Slika 8. Kreiranje vlastite varijable

U ovom primjeru smo kreirali varijable $ime i $prezime, te je ona izvedena u html elementu H1. Ako ovo izvedemo u pregledniku ovako će izgledati:

Slika 9. Prikaz sadržaja dvije varijable u pregledniku

Ako u ovom primjeru provjerimo izvor stranice, web preglednik će nam prikazati čisti HTML kod, neće nam prikazivati PHP varijable. To će ovako izgledati:

Slika 10. Prikaz izvora stranice, čisti HTML kod

U ovom primjeru možemo primijetiti kako je ime i prezime osobe u pregledniku spojeno. Kako bi smo to izbjegli, upoznati ćemo se s primjerom nadoljepljivanja sadržaja varijabli. Prikazati ćemo ga na sljedeći način:

Slika 11. Prikaz nadoljepljivanja sadržaja varijabli

Znakovi . " " . znače nadoljepljivanje sadržaja nakon varijable ime i prije varijable prezime kako ispisani tekst ne bi bio slijepljen.

Sada naš primjer u pregledniku izgleda ovako:

PHP nizovi

Nizovi “spremaju” nekoliko vrijednosti u jednu varijablu. PHP podržava nekoliko vrsta nizova. Postoje asocijativni nizovi koji koriste “ključne nazive” koje im dodijelimo i indeksni nizovi koji imaju brojčane indekse. Multidimenzionalni nizovi su kombinacija jednog ili više nizova.

U idućem primjeru ćemo prikazati kako se kreiraju asocijativni nizovi.

Slika 13. Primjer asocijativnog niza

U ovom primjeru imamo asocijativni niz koji se nalazi u varijabli $mjesto. Niz prepoznajemo po nazivu array. Niz se sastoji od “ključnih naziva” Petar, Marko i Ivan. Nizovima su dodijeljene vrijednosti tj. u ovom primjeru gradovi u kojima žive. U ovom primjeru smo željeli saznati gdje Marko i Ivan žive i to smo učinili tako što smo u echo element upisali varijablu i njezin “ključni naziv” i tako dobili njegovu vrijednost. Moramo paziti da prije navođenja varijable koja u sebi sadrži niz prvo stavimo točku kako bi sustav prepoznao početak varijable.

U pregledniku će to ovako izgledati:

Slika 14. Prikaz asocijatvnog niza u web browseru

Pored asocijativnih, postoje i indeksni nizovi. Oni imaju numeričke indekse. U idućem primjeru prikazat ćemo jedan indeksni niz:

Slika 15. Primjer indeksnog niza

Kreirali smo varijablu $gradovi koja u sebi ima niz od nekoliko gradova. U ovom primjeru su nabrojani gradovi koje smo posjetili. Vrijednosti iz niza pozivamo numeričkim indeksima, tako je numerički indeks za Osije+k [0], tj. numerički indeks je redni broj pod kojim se željena vrijednost nalazi.

U web pregledniku to će izgledati ovako:

Slika 16. Prikaz indeksnog niza u web browseru

Globalni nizovi su nizovi koji su već ugrađeni u varijable. Njih možemo odmah koristiti tj. ne moramo ih ispisivati. Najpoznatiji globalni nizovi su: $_SERVER, $_REQUEST, $_POST, $_GET, $_FILES, $_COOKIE i $_SESSION.

U primjeru koji slijedi prikazat ćemo globalni niz $_SERVER.

Slika 17. Primjer globalnog niza $_SERVER

U primjeru smo koristili globalni niz $_SERVER te tako saznali gdje se nalazi naša php datoteka te kako se zove server na kojem je pohranjena kao i sve ostale elemente koje nam nudi globalni niz. Točnost podataka možete vidjeti u adresnoj traci.

U pregledniku to izgleda ovako:

Slika 18. Prikaz globalnog niza $_SERVER u web pregledniku.

Idući globalni niz koji ćemo koristiti je $_REQUEST koji uzima podatke koje pošaljemo putem HTML formi. Za početak nam je potrebna jedna .html datoteka u koju ćemo postaviti element form i u atributu form elementa postaviti poveznicu na drugu .php datoteku. Prvo ćemo kreirati .html datoteku.

Slika 19. HTML datoteka

U ovoj .html datoteci kreirali smo element form kojem smo dodijelili atribute method koji nam služi kako bi bilo prikazano ono što je uneseno u input elementu. Drugi atribut koji smo dodijelili form elementu je action koji govori prethodnom atributu tj. method u kojem dokumentu da prikaže sadržaj input elementa. Zatim smo kreirali label element koji nam govori što da upišemo u input element. Iduću stvar koju smo napravili jest da smo kreirali input element i dodali mu atribut name.

To u pregledniku izgleda ovako:

Slika 20. Izgled HTML datoteke u web pregledniku

Idući korak koji nam je potreban kako bismo uspješno prikazali $_REQUEST jeste da moramo kreirati .php datoteku. To ćemo učiniti na ovaj način:

Slika 21. PHP datoteka

Ovdje smo kreirali varijablu $Ime koja preuzima vrijednost primljenog parametra Ime kroz GET metodu. Pomoću globalnog niza smo “zatražili” podatak koji se nalazi u HTML datoteci tj. u elementu input koji ima atribut name.

Kada u web pregledniku upišemo u input element vlastito ime dobijemo slijedeće:

Slika 22. Prikaz PHP datoteke u web pregledniku, nakon što smo u HTML datoteci unijeli vlastito ime

Kao što vidimo na primjeru sada smo iz .html datoteke dobili podatak o imenu osobe i to je prikazano u .php datoteci, što se vidi i na adresnoj liniji.

Idući globalni niz koji ćemo prikazati je $_POST. On se koristi za uzimanje podataka iz input elementa, ali i za prijenos varijable što ćemo učiniti i u slijedećem primjeru. Prvo ćemo kreirati .html datoteku.

Slika 23. HTML datoteka za $_POST

U .html datoteci smo kreirali jednu formu sa inputima ime i prezime te na kraju smo dodali gumb za predaju forme. Iduću stvar koju moramo napraviti je kreirati dvije .php datoteke.

U jednoj ćemo prikazati poruku, a u drugoj niz $_POST koji će prenijeti i prikazati tu poruku nakon što obavimo prijavu u .html datoteci. Poruka izgleda ovako:

Slika 24. Poruka za $_POST

I posljednje što trebamo napraviti jest kreirati drugu .php datoteku u kojoj ćemo prikazati globalni niz $_POST, a to izgleda ovako:

Slika 25. PHP datoteka s globalnim nizom $_POST

Sada kada smo kreirali sve što nam je potrebno prikazat ćemo kako to izgleda u web pregledniku. Prvo će nam se otvoriti order.html datoteka u kojoj ćemo ispuniti polja ime i prezime i kliknuti na “Pošalji”.

Slika 26. Prikaz HTML datoteke u web pregledniku

Nakon što kliknemo na “Pošalji” otvoriti će nam se Osnove.php datoteka u kojoj se nalazi ispisan $_POST te će nam prikazati poruku koja se nalazi u msg.php.To onda izgleda ovako:

Slika 27. Prikaz rezultata uporabe $_POST globalnog niza. Vidimo kako nam je otvorena datoteka Osnove.php, a u njoj je prikazana poruka iz datoteke msg.php.

Idući globalni niz koji ćemo prikazati jest $_GET. On nam služi za preuzimanje podataka iz HTML formi putem atributa method=get, ali služi nam i za prikupljanje podataka koji su poslani putem URL adrese, što ćemo učini u ovom primjeru. Kreirati ćemo .html datoteku koja će ovako izgledati:

Slika 28. HTML datoteka

U atributu href vidimo da se poziva datoteka Osnove.php te da su postavljeni nizovi first i second. Iduće što trebamo napraviti jeste kreirati u datoteci Osnove.php globalni niz $_GET.

To ćemo učiniti na ovaj način:

Slika 29. $_GET globalni niz

Kada smo napravili .html i .php datoteke krenimo u izvedbu napisanog koda. Prvo će na se prikazati element a:

Slika 30. Prikaz HTML datoteke u web pregledniku

Kada kliknemo na element a dobit ćemo slijedeće:

Slika 31. Rezultat $_GET globalnog niza

Grananje

Često kada pišemo nekakav kod moramo predvidjeti što bi korisnik koda mogao učiniti. Nekad nam nije dovoljno samo jedno rješenje i tada koristimo grananja. Grananja mogu biti jednostruka i višestruka. U idućem primjeru ćemo prikazati kako se izvode jednostruka grananja u php-u.

Slika 32. Jednostruko grananje

U ovom primjeru smo kreirali varijablu $vrijeme kojoj nam pokazuje vrijeme i postavili smo uvjet tj. if koji će, ako je manje od 19 sati, poslati poruku “Dobar dan!”. Preko atributa href u elementu link upisali smo relativnu putanju do CSS datoteke koja će nam element h1 prikazati crvenom bojom i to na sredini stranice. To u pregledniku izgleda ovako:

Slika 33. Prikaz jednostrukog grananja u web pregledniku

U idućem primjeru ćemo prikazati višestruko grananje. Ono nam služi kada postoji više mogućnosti za određeni scenarij.

Slika 34. Primjer višestrukog grananja

U ovom primjeru smo postavili više uvjeta za prikaz vremena. Višestruko grananje prepoznajemo po oznakama elseif i else. Ono što radi ovaj primjer jest da nam prikazuje koje je doba dana. Ako je manje od 10h prikazat će nam se poruka “Dobro jutro!”, ako je manje od 19h prikazat će se “Dobar dan!” i ako je između 19h i 10h prikazat će nam se “Dobra večer!”. Poruke smo oblikovali u CSS-u, te će to ovako izgledati u pregledniku:

Slika 35. Prikaz ako se ispuni prvi uvjet

Slika 36. Prikaz ako se ispuni drugi uvjet

Slika 37. Prikaz ako se ispuni treći uvjet

U idućem primjeru prikazat ćemo naredbu SWITCH. Ona se koristi za izvršavanje određenih radnji koje se baziraju na različitim uvjetima.

Slika 38. Switch naredba

U ovom primjeru kreirali smo varijablu $drzava koja ima vrijednost “Hrvatska” i u tom slučaju ispisat će se “Nalazite se u Hrvatskoj”. Za ovaj slučaj imamo četiri moguća rješenja, naravno mi možemo upisati bezbroj rješenja. Ako ostavimo praznu varijablu prikazat će nam se vrijednost koju smo upisali u default polju. Nakon svakog slučaja pišemo break i na taj način označavamo kraj jednog slučaja tj. case.

Petlje

Kada pišemo određeni kod javlja se potreba da jedan red ispišemo više puta zaredom. Kako to ne bi morali raditi koristit ćemo se petljama. U prvom primjeru prikazat ćemo kako se koristi petlja WHILE.

Slika 39.Primjer while petlje

U ovom primjeru smo izveli petlju while i umjesto da smo ispisivali redom brojeve od 0 do 50 petlja je to učinili za nas. Za početak smo kreirali varijablu koja ima vrijednost nula i zatim smo kreirali petlju koja radi na način da izlistava brojeve sve dok ne dođe do broj 50 i to će se prikazivati jedno ispod drugom.

U pregledniku to izgleda ovako:

Slika 40. Prikaz while petlje u web pregledniku. Brojevi su izlistani do 50, ali zbog veličine, slika je skraćena.

Iduća petlja koju ćemo prikazati je DO...WHILE. Ova petlja će nam izlistavati podatke skroz dok je uvjet “true”.

U sljedećem primjeru ćemo pokazati na koji način se to radi:

Slika 41. Prikaz DO...WHILE petlje

U ovom primjeru kreirali smo dvije varijable $cijena_cokolade i $kolicina, zatim smo te dvije varijable postavili u petlju koja će nam izlistavati podatke sve dok količina ne bude veća od 150. Za ovaj primjer smo postavili da jedna čokolada košta 5 kuna i želimo saznati koliko košta 10,20,30 itd. čokolada.

Da ne bismo računali sve posebno, kreiramo petlju koja će to učiniti za nas, što u pregledniku izgleda na sljedeći način:

Slika 42. Izgled DO...WHILE petlje u web pregledniku. Tablica je uređena u CSS-u s elementom border.

Iduća petlja koju ćemo prikazati jest petlja FOR. Ta petlja se koristi kada unaprijed znamo točan broj ponavljanja bloka petlje.

Ovako se poziva petlja u php kodu:

Slika 43. Primjer koda FOR petlje

U ovom primjeru pokrenuli smo FOR petlju koja će krenuti od vrijednosti x varijable tj. 10 i izlistavat će nam sve brojeve do 0, što u pregledniku izgleda ovako:

Slika 44. Rezultat FOR petlje u web pregledniku

U idućem primjeru prikazat ćemo petlju FOREACH. Petlja se koristi za rad s nizovima i ona prolazi kroz svaki element niza i obavlja blok naredbi. Da bi se bolje pojasnilo što možemo s FOREACH petljom kreirat ćemo konkretan primjer.

Slika 45. Kod FOREACH petlje

U ovom primjeru kreirali smo varijablu ucenici koja u sebi ima niz. U nizu se nalazi popis imena i godina učenika. Kako bi izlistali svakog posebno učenika iz niza koristit ćemo se petljom FOREACH koja će to učiniti za na. Petlja će vrijednosti iz niza izlistavati tako što će prvu vrijednost postaviti pod Ime,a drugu pod Godine, što će u pregledniku ovako izgledati:

Slika 46. Prikaz rezultata FOREACH petlje u web pregledniku

Funkcije

Funkcije su ništa drugo no nekoliko blokova koda sažete u jedan izraz koji možemo koristiti kad god nam je potrebno i tako si olakšati posao i također, uštedjeti si vrijeme. PHP ima dobro razvijene tzv. "Built in" funkcije. To su funkcije koje su već "ugrađene" u sustav i ne moramo ih sami definirati nego je samo potrebno unijeti naziv funkcije. Funkcija se neće izvršiti dok god ju ne budemo pozvali. Pored "Built in" funkcija, možemo kreirati i vlastite pa ćemo to učiniti u prvom primjeru.

Slika 47. Kreiranje vlastite PHP funkcije

U ovom primjeru kreirali smo vlastitu PHP funkciju koja nam služi kada želimo pozdraviti nekog. Prvo smo kreirali funkciju pozdrav i dodali joj varijablu ime, zatim smo napisali što će ta funkcija raditi, tj. u ovom primjeru će upisati Dobar dan zatim ime osobe koju želimo pozdraviti što će u pregledniku ovako izgledati:

Slika 48. Izgled funkcije pozdrav() u web pregledniku. Stilski je uređeno u CSS-u

U idućem primjeru prikazat ćemo kako se izvode već ugrađene funkcije tzv. “Built In” funkcije. Za primjer ćemo uzeti funkciju koja nam pokazuje točan datum i vrijeme sustava.

Slika 49. Prikaz funkcije koja nam pokazuje točan datum i vrijeme. Kada ovo otvorimo u web pregledniku prikazat će nam se točna godina, mjesec, dan, sat, minut i sekunda.

Iduću funkciju koju ćemo prikazati jest funkcija SUM. Funkcija se koristi za izračune i ona vraća vrijednost što definiramo izrazom return. U idućem primjeru prikazat ćemo kako se izvodi funkcija SUM:

Slika 50. Funkcija SUM, koja vraća vrijednost

U primjeru smo izveli funkciju SUM koja će pomnožiti varijable $x i $y i vratit će nam vrijednost $z koja je rezultat množenja $x i $y varijable, što u pregledniku izgleda ovako:

Slika 51. Prikaz SUM funkcije u web pregledniku

Literatura

PHP tutorial – Learn PHP

URL: http://www.tizag.com/phpT/index.php

Uvod u PHP

URL: http://php.com.hr/77

PHP 5 Tutorial

URL: http://www.w3schools.com/php/default.asp